#pragma once

#include "seat.h"
#include "wlroots.hpp"

class Keyboard {

    Keyboard();
    ~Keyboard();

// cursor_init(seat);
// keyboard_group_init(seat);
    void setup_handlers();
    void set_numlock(struct wlr_keyboard *keyboard);
    void cancel_keybind_repeat();

private:
    struct Input m_base;
    struct wlr_keyboard *wlr_keyboard;
    bool is_virtual;
    struct wl_listener modifier;
    struct wl_listener key;
    /* key repeat for compositor keybinds */
    uint32_t keybind_repeat_keycode;
    int32_t keybind_repeat_rate;
    struct wl_event_source *keybind_repeat;
};
